今天要紀錄用dplyr進行嵌套連接(Nest Join):
nest_join()將一個資料表的匹配結果嵌套成另一個資料表的新列。這樣可以在不展開整個資料表的情況下,保留每個匹配的完整訊息。
建立範例資料
library(dplyr)
# 建立表格 x
x <- tribble(
~A, ~B, ~C,
"a", "t", 1,
"b", "u", 2,
"c", "v", 3
)
# 建立表格 y
y <- tribble(
~A, ~B, ~D,
"a", "t", 3,
"b", "u", 2,
"d", "w", 1
)
將 y 資料表的匹配結果嵌套在 x 資料表中
# 使用 nest_join 將 y 的匹配結果嵌套在 x 中
nested_result <- nest_join(x, y, by = c("A", "B"), name = "nested_data")
# 查看結果
print(nested_result)
nested_data欄位屬於list格式
查看嵌套的資料內容
library(tidyr)
library(purrr)
# 查看嵌套的資料內容
nested_result %>%
mutate(nested_data = map(nested_data, as_tibble)) %>%
unnest(nested_data)
參考資料: